package com.ybkj.daijia.server.service;


import com.ybkj.daijia.common.PageVo;
import com.ybkj.daijia.common.Result;
import com.ybkj.daijia.server.mc.Passenger;
import com.ybkj.daijia.server.mc.PassengerAccount;
import com.ybkj.daijia.server.model.Driver;
import com.ybkj.daijia.server.model.DriverPaymentsRecord;
import com.ybkj.daijia.server.model.FinancialRecord;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author Shine
 */
public interface FinancialRecordService {

    /**
     * @param param
     * @param end
     * @param start
     * @param driverid
     * @param end
     * @param start
     * @param companyId
     * @param name
     * @return name为null则查询出所有的信息，否则只查询出与name匹配的信息
     */
    public PageVo<FinancialRecord> queryAll(Date start, Date end, String param, String ftype,
        Long companyId, String companyType);

    /**
     * @param admin
     * @return
     */
    public FinancialRecord save(FinancialRecord financialRecord);

    /**
     * @param id
     * @return
     */
    public FinancialRecord findOne(Long id);

    public int delete(FinancialRecord financialRecord);

    public long getRunningNumber();

    public PageVo<Driver> queryDriver(Long companyId, String param, Date start, Date end,
        Integer page, Integer limit);

    public PageVo<Passenger> queryMember(Long companyId, String param, Integer page, Integer limit);

    public Result<FinancialRecord> audit(FinancialRecord financialRecord);

    public PageVo<DriverPaymentsRecord> queryDriverRecharge(Long companyId, String param,
        String type, Date start, Date end, Integer page, Integer limit);

    public PageVo<PassengerAccount> queryMemberRecharge(Long companyId, String param, String type,
        Date start, Date end);

    public List<FinancialRecord> listByOrderType(int orderType);

    public void baoxiao(Long driverCompanyId, Long orderCompanyId, Long orderId, Integer orderType,
        BigDecimal money, String orderNumber, String driverName, String memo);


    PageVo<PassengerAccount> exprotMemberRecharge(Long companyId, String param, String type,
        Date start, Date end);
}
